home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / 68hc11 / clock_co.txt < prev    next >
Text File  |  1994-10-20  |  6KB  |  122 lines

  1. Clock time print string....
  2.  
  3.  
  4.  
  5.  
  6. 1062 c2da 43 4c 4f 43 4b 20  MSG3      FCC 'CLOCK VALUE IS NOW:'
  7.      56 41 4c 55 45 20
  8.      49 53 20 4e 4f 57
  9.      3a
  10. 1063 c2ed 0d 04                        FCB CR,04
  11.  
  12. Stuff Deleted.....
  13.  
  14.  
  15.  
  16.  
  17. 1091 c434 0d 04                        FCB CR,4
  18. 1092 c436 44 55 4d 4d 59 20  MSG17     FCC 'DUMMY '
  19. 1093 c43c 00 00              NEXTLOC   FDB 0
  20. 1094 c43e 00 00              OLDLOC    FDB 0
  21. 1095 c440                    PRTCLK    EQU *
  22. 1096 c440 ce c2 da                     LDX #MSG3
  23. 1097 c443 bd e4 fd                     JSR OUTSTRG0
  24. 1098 c446 bd c4 71                     JSR READCLK
  25. 1099 c449 ce c4 d5                     LDX #YEAR
  26. 1100 c44c bd e4 e4                     JSR OUT1BSP
  27. 1101 c44f ce c4 d4                     LDX #MONTH
  28. 1102 c452 bd e4 e4                     JSR OUT1BSP
  29. 1103 c455 ce c4 d3                     LDX #DATE
  30. 1104 c458 bd e4 e4                     JSR OUT1BSP
  31. 1105 c45b ce c4 d1                     LDX #HOURS
  32. 1106 c45e bd e4 e4                     JSR OUT1BSP
  33. 1107 c461 ce c4 d0                     LDX #MINS
  34. 1108 c464 bd e4 e4                     JSR OUT1BSP
  35. 1109 c467 ce c4 cf                     LDX #SECS
  36. 1110 c46a bd e4 e4                     JSR OUT1BSP
  37. 1111 c46d bd e4 ed                     JSR OUTCRLF
  38. 1112 c470 39                           RTS
  39.  
  40.    This is the tricky part - if you got here from an interrupt, you COULD have been
  41. in the process of reading the clock, which means the door is open - if you then
  42. access that memory location, the value in memory and/or clock will be scrambled -
  43. so make SURE that before you do anything else, you reset the access to start
  44. from the beginning of the sequence -- this hung me up for weeks! --BW
  45.  
  46. 1113 c471                    READCLK  EQU *
  47.  
  48. This section opens the door to the clock - note the funnyness of stuffing bits
  49. into the right location - not bytes....
  50.  
  51. 1114 c471 18 ce 00 64              LDY #100
  52. 1115 c475 b6 7f f0           RC1   LDAA CLOCK    MAKE SURE CLOCK ACCESS OFF - COULD BE
  53. 1116 c478 18 09                    DEY           STILL OPEN IF HERE AFTER SW RESET...
  54. 1117 c47a 26 f9                    BNE RC1
  55. 1118 c47c 18 ce 00 00              LDY #0        ZERO WRITE COUNTER
  56. 1119 c480 ce c4 c5                 LDX #ATABLE-1 POINT X TO 1 BYTE BEFORE ACCESS TABLE
  57. 1120 c483 86 a3                    LDAA #$A3
  58. 1121 c485 b7 c4 c8                 STAA THEA3  ENABLE ACCESS TABLE
  59. 1122 c488 b6 7f f0                 LDAA CLOCK  RESET COMPARISON REGISTER
  60. 1123 c48b                    LOOP10 EQU *
  61. 1124 c48b 08                       INX
  62. 1125 c48c 8c c4 ce                 CPX #ETABLE
  63. 1126 c48f 27 0f                    BEQ ENDACC           POINT X AT NEXT BYTE OF ACCESS CODE
  64. 1127 c491 c6 08                    LDAB #8
  65. 1128 c493 a6 00                    LDAA 0,X      GET NEXT BYTE OF ACCESS CODE
  66. 1129 c495                    LOOP12 EQU *
  67. 1130 c495 b7 7f f0                 STAA CLOCK          STORE BIT INTO D0 OF CLOCK ADDRESS
  68. 1131 c498 46                       RORA
  69. 1132 c499                    LOOP13 EQU *
  70. 1133 c499 18 08                    INY    INCREMENT WRITE COUNTER
  71. 1134 c49b 5a                       DECB   DECREMENT COUNTER IN B
  72. 1135 c49c 26 f7                    BNE   LOOP12 IF NOT WRITTEN 8 TIMES, CONTINUE
  73. 1136 c49e 20 eb                    BRA   LOOP10 OTHERWISE, GET NEXT BYTE OF ACCESS CODE
  74. 1137 c4a0                    ENDACC EQU *
  75.  
  76.    Once the door is open, we can now read the time - setting it is essentially
  77. the reverse procedure....
  78.  
  79. 1138 c4a0                    READC EQU * READ THE CLOCK AFTER ACCESS SET
  80. 1139 c4a0 86 00                    LDAA #0
  81. 1140 c4a2 97 00                    STAA COUNT
  82. 1141 c4a4 ce c4 cd                 LDX #CDATO-1
  83. 1142 c4a7                    RL10  EQU *
  84. 1143 c4a7 08                       INX
  85. 1144 c4a8 8c c4 d6                 CPX #COEND
  86. 1145 c4ab 27 16                    BEQ ENDREAD   END OF READ CLOCK ROUTINE
  87. 1146 c4ad 18 ce 00 08              LDY #8
  88. 1147 c4b1 86 00                    LDAA #0       CLEAR REGISTER A
  89. 1148 c4b3                    RL11  EQU *
  90. 1149 c4b3 f6 7f f0                 LDAB CLOCK    READ BYTE (BIT IN POSITION 0 WITH A2 HIGH)
  91. 1150 c4b6 56                       RORB          ROTATE LS BIT INTO CARRY FROM REG B
  92. 1151 c4b7 46                       RORA          ROTATE CARRY INTO LS BIT POSITION REG A
  93. 1152 c4b8 7c 00 00                 INC COUNT     INCREMENT CYCLE COUNTER
  94. 1153 c4bb 18 09                    DEY           DECREMENT Y
  95. 1154 c4bd 26 f4                    BNE   RL11    IF NOT DONE 8 TIMES, DO IT AGAIN
  96. 1155 c4bf a7 00                    STAA  0,X     STORE INTO CLOCK DATA OUT TABLE
  97. 1156 c4c1 20 e4                    BRA   RL10    GO GET NEXT BYTE
  98. 1157 c4c3                    ENDREAD EQU *
  99. 1158 c4c3 39                       RTS
  100. 1159 c4c4 00 00              NOVALS FDB 0
  101. 1160 c4c6                    ATABLE EQU *        CLOCK ACCESS TABLE
  102. 1161 c4c6 c5 3a                     FCB           $C5,$3A
  103. 1162 c4c8 a3 5c c5 3a a3 5c  THEA3  FCB           $A3,$5C,$C5,$3A,$A3,$5C
  104. 1163 c4ce                    ETABLE EQU *
  105. 1164                         
  106. 1165 c4ce                    CDATO  EQU *
  107. 1166 c4ce 00                 SEC10S     FCB 0
  108. 1167 c4cf 00                 SECS       FCB 0
  109. 1168 c4d0 00                 MINS       FCB 0
  110. 1169 c4d1 00                 HOURS      FCB 0
  111. 1170 c4d2 00                 DAY        FCB 0
  112. 1171 c4d3 00                 DATE       FCB 0
  113. 1172 c4d4 00                 MONTH      FCB 0
  114. 1173 c4d5 00                 YEAR       FCB 0
  115. 1174 c4d6                    COEND  EQU *
  116. 1175 c4d6                    ESN       EQU *
  117. 1176 c4d6                    BUFFER     EQU *
  118. 1177 c4d6                               RMB 100
  119. 1178 c53a                    ENDBUF     EQU *
  120. 1179 c53a                    DATASTRT   EQU *
  121. 1180 de00                    ENDDATA    EQU $DE00
  122.